package ar.com.cubika.trainees.bean.transportes.actividades;

import java.util.Collection;
import java.util.Date;
import java.util.HashSet;

import ar.com.cubika.trainees.bean.transportes.vehiculos.Vehiculo;
import ar.com.cubika.trainees.exceptions.BusinessException;

public class PlanContinuacionDeViajeLargo extends PlanDiario {
	private Viaje viaje;

	public PlanContinuacionDeViajeLargo(Vehiculo vehiculo, Date fecha) {
		super(vehiculo, fecha);
	}
	
	/**
	 * El viaje cuya continuacion ocupa este dia.
	 */
	public Viaje getViaje() {
		return viaje;
	}

	public void setViaje(Viaje viaje) {
		this.viaje = viaje;
	}


	/* (non-Javadoc)
	 * @see ar.com.cubika.trainees.bean.transportes.actividades.PlanDiario#getActividades()
	 */
	public Collection<Actividad> getActividades() {
		if (this.getViaje() == null) {
			throw new BusinessException(
					"Debe ingresarse un viaje en el plan " + 
					this.getDescripcionBase());
		}
		Collection<Actividad> result = new HashSet<Actividad>();
		result.add(this.getViaje());
		return result;
	}

	/* (non-Javadoc)
	 * @see ar.com.cubika.trainees.bean.transportes.actividades.PlanDiario#getDescripcionEstricta()
	 */
	public String getDescripcionEstricta() {
		return this.getViaje().getDescripcion();
	}

	/* (non-Javadoc)
	 * @see ar.com.cubika.trainees.bean.transportes.actividades.PlanDiario#getTiempoLibre()
	 */
	public double getTiempoOcupado() {
		return 24.0;
	}

	/* (non-Javadoc)
	 * @see ar.com.cubika.trainees.bean.transportes.actividades.PlanDiario#isLibre()
	 */
	public boolean isLibre() {
		return false;
	}
	
	
	
	
	
}
